Skip to content

Update to LLVM 21 #143684

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 6, 2025
Merged

Update to LLVM 21 #143684

merged 3 commits into from
Aug 6, 2025

Conversation

nikic
Copy link
Contributor

@nikic nikic commented Jul 9, 2025

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 9, 2025
@rustbot
Copy link
Collaborator

rustbot commented Jul 9, 2025

These commits modify compiler targets.
(See the Target Tier Policy.)

@nikic
Copy link
Contributor Author

nikic commented Jul 9, 2025

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Jul 9, 2025
Update to LLVM 21

r? `@ghost`
@rust-bors
Copy link

rust-bors bot commented Jul 9, 2025

⌛ Trying commit ebb63b9 with merge c3e645b

To cancel the try build, run the command @bors2 try cancel.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 9, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Jul 9, 2025

💔 Test failed

@nikic
Copy link
Contributor Author

nikic commented Jul 9, 2025

Noooo, a crash while profiling with the bolt instrumentation.

    process didn't exit successfully: `/tmp/tmp-multistage/opt-artifacts/rustc-perf/target/debug/rustc-fake --crate-name regex_automata --edition=2021 /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="alloc"' --cfg 'feature="dfa-onepass"' --cfg 'feature="dfa-search"' --cfg 'feature="hybrid"' --cfg 'feature="meta"' --cfg 'feature="nfa"' --cfg 'feature="nfa-backtrack"' --cfg 'feature="nfa-pikevm"' --cfg 'feature="nfa-thompson"' --cfg 'feature="perf"' --cfg 'feature="perf-inline"' --cfg 'feature="perf-literal"' --cfg 'feature="perf-literal-multisubstring"' --cfg 'feature="perf-literal-substring"' --cfg 'feature="std"' --cfg 'feature="syntax"' --cfg 'feature="unicode"' --cfg 'feature="unicode-age"' --cfg 'feature="unicode-bool"' --cfg 'feature="unicode-case"' --cfg 'feature="unicode-gencat"' --cfg 'feature="unicode-perl"' --cfg 'feature="unicode-script"' --cfg 'feature="unicode-segment"' --cfg 'feature="unicode-word-boundary"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("alloc", "default", "dfa", "dfa-build", "dfa-onepass", "dfa-search", "hybrid", "internal-instrument", "internal-instrument-pikevm", "logging", "meta", "nfa", "nfa-backtrack", "nfa-pikevm", "nfa-thompson", "perf", "perf-inline", "perf-literal", "perf-literal-multisubstring", "perf-literal-substring", "std", "syntax", "unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment", "unicode-word-boundary"))' -C metadata=29004f3d2c23a6dc -C extra-filename=-acaa9aabb4aa769d --out-dir /tmp/.tmpSoAMdr/target/release/deps -C linker=clang -C strip=debuginfo -L dependency=/tmp/.tmpSoAMdr/target/release/deps --extern aho_corasick=/tmp/.tmpSoAMdr/target/release/deps/libaho_corasick-f3f82c9a60cf08f9.rmeta --extern memchr=/tmp/.tmpSoAMdr/target/release/deps/libmemchr-e5f42c55eae6f759.rmeta --extern regex_syntax=/tmp/.tmpSoAMdr/target/release/deps/libregex_syntax-7bce46b340cd2bfa.rmeta --cap-lints allow` (signal: 11, SIGSEGV: invalid memory reference)

@rust-log-analyzer

This comment has been minimized.

@Kobzol
Copy link
Member

Kobzol commented Jul 9, 2025

Noooo, a crash while profiling with the bolt instrumentation.

    process didn't exit successfully: `/tmp/tmp-multistage/opt-artifacts/rustc-perf/target/debug/rustc-fake --crate-name regex_automata --edition=2021 /cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regex-automata-0.4.9/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="alloc"' --cfg 'feature="dfa-onepass"' --cfg 'feature="dfa-search"' --cfg 'feature="hybrid"' --cfg 'feature="meta"' --cfg 'feature="nfa"' --cfg 'feature="nfa-backtrack"' --cfg 'feature="nfa-pikevm"' --cfg 'feature="nfa-thompson"' --cfg 'feature="perf"' --cfg 'feature="perf-inline"' --cfg 'feature="perf-literal"' --cfg 'feature="perf-literal-multisubstring"' --cfg 'feature="perf-literal-substring"' --cfg 'feature="std"' --cfg 'feature="syntax"' --cfg 'feature="unicode"' --cfg 'feature="unicode-age"' --cfg 'feature="unicode-bool"' --cfg 'feature="unicode-case"' --cfg 'feature="unicode-gencat"' --cfg 'feature="unicode-perl"' --cfg 'feature="unicode-script"' --cfg 'feature="unicode-segment"' --cfg 'feature="unicode-word-boundary"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("alloc", "default", "dfa", "dfa-build", "dfa-onepass", "dfa-search", "hybrid", "internal-instrument", "internal-instrument-pikevm", "logging", "meta", "nfa", "nfa-backtrack", "nfa-pikevm", "nfa-thompson", "perf", "perf-inline", "perf-literal", "perf-literal-multisubstring", "perf-literal-substring", "std", "syntax", "unicode", "unicode-age", "unicode-bool", "unicode-case", "unicode-gencat", "unicode-perl", "unicode-script", "unicode-segment", "unicode-word-boundary"))' -C metadata=29004f3d2c23a6dc -C extra-filename=-acaa9aabb4aa769d --out-dir /tmp/.tmpSoAMdr/target/release/deps -C linker=clang -C strip=debuginfo -L dependency=/tmp/.tmpSoAMdr/target/release/deps --extern aho_corasick=/tmp/.tmpSoAMdr/target/release/deps/libaho_corasick-f3f82c9a60cf08f9.rmeta --extern memchr=/tmp/.tmpSoAMdr/target/release/deps/libmemchr-e5f42c55eae6f759.rmeta --extern regex_syntax=/tmp/.tmpSoAMdr/target/release/deps/libregex_syntax-7bce46b340cd2bfa.rmeta --cap-lints allow` (signal: 11, SIGSEGV: invalid memory reference)

Oh no, the day has finally come 😆

@nikic
Copy link
Contributor Author

nikic commented Jul 9, 2025

llvm/llvm-project#147781 for pr-check-1 assertion failure.

@bors
Copy link
Collaborator

bors commented Jul 10, 2025

☔ The latest upstream changes (presumably #143703) made this pull request unmergeable. Please resolve the merge conflicts.

@nikic
Copy link
Contributor Author

nikic commented Jul 10, 2025

llvm/llvm-project#147935 for armhf-gnu test failure.

@nikic
Copy link
Contributor Author

nikic commented Jul 10, 2025

llvm/llvm-project#139443 for musl build failure.

@nikic
Copy link
Contributor Author

nikic commented Jul 11, 2025

llvm/llvm-project#148207 for x86_64-gnu-nopt assertion failure.

@rustbot

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@nikic
Copy link
Contributor Author

nikic commented Jul 14, 2025

llvm/llvm-project#148607 for the brand new x86_64-gnu-miri build failure...

@bors
Copy link
Collaborator

bors commented Jul 14, 2025

☔ The latest upstream changes (presumably #143873) made this pull request unmergeable. Please resolve the merge conflicts.

@nikic
Copy link
Contributor Author

nikic commented Jul 15, 2025

@bors2 try

I was unable to reproduce the bolt issue locally. Fingers crossed that I just hit a bad commit or something.

rust-bors bot added a commit that referenced this pull request Jul 15, 2025
@rust-bors
Copy link

rust-bors bot commented Jul 15, 2025

⌛ Trying commit b0b9a3c with merge cd80bb6

To cancel the try build, run the command @bors2 try cancel.

@nikic
Copy link
Contributor Author

nikic commented Aug 5, 2025

@bors try jobs=dist-aarch64-linux

@rust-bors
Copy link

rust-bors bot commented Aug 5, 2025

⌛ Trying commit e6c0e63 with merge 9e5b077

To cancel the try build, run the command @bors try cancel.

rust-bors bot added a commit that referenced this pull request Aug 5, 2025
Update to LLVM 21

try-job: dist-aarch64-linux
@rust-bors
Copy link

rust-bors bot commented Aug 5, 2025

☀️ Try build successful (CI)
Build commit: 9e5b077 (9e5b07782fd4829ce008a42c5187742f758e38a4, parent: 0f353363965ebf05e0757f7679c800b39c51a07e)

@nikic
Copy link
Contributor Author

nikic commented Aug 5, 2025

Yay, that worked. I've switched the compiler-rt build for the host compiler to use the runtimes configuration, where compiler-rt gets built by the just-built clang. The host GCC is not able to compile it anymore on aarch64. We could try updating it, but as the project build for compiler-rt is deprecated anyway, this seems preferable.

@cuviper
Copy link
Member

cuviper commented Aug 5, 2025

@bors r+

@bors
Copy link
Collaborator

bors commented Aug 5, 2025

📌 Commit e6c0e63 has been approved by cuviper

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 5, 2025
@tgross35
Copy link
Contributor

tgross35 commented Aug 5, 2025

@bors p=5

(giving the same priority as rollups so this can iterate quicker if needed)

bors added a commit that referenced this pull request Aug 5, 2025
Update to LLVM 21

Timeline: LLVM 21.1.0 is scheduled to release on Aug 26th. Rust 1.90 branches on Aug 1st and releases September 18.

Depends on:
 * [x] llvm/llvm-project#147781
 * [x] llvm/llvm-project#147935
 * [x] llvm/llvm-project#139443
 * [x] llvm/llvm-project#148207
 * [x] llvm/llvm-project#148607
 * [x] llvm/llvm-project#149046
 * [x] llvm/llvm-project#149097
 * [x] #144116

r? `@ghost`
@bors
Copy link
Collaborator

bors commented Aug 5, 2025

⌛ Testing commit e6c0e63 with merge 54bb377...

@bors
Copy link
Collaborator

bors commented Aug 6, 2025

💥 Test timed out

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 6, 2025
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@tgross35
Copy link
Contributor

tgross35 commented Aug 6, 2025

@bors retry

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 6, 2025
@bors
Copy link
Collaborator

bors commented Aug 6, 2025

⌛ Testing commit e6c0e63 with merge dc0bae1...

@bors
Copy link
Collaborator

bors commented Aug 6, 2025

☀️ Test successful - checks-actions
Approved by: cuviper
Pushing dc0bae1 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 6, 2025
@bors bors merged commit dc0bae1 into rust-lang:master Aug 6, 2025
12 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 6, 2025
Copy link
Contributor

github-actions bot commented Aug 6, 2025

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing ec7c026 (parent) -> dc0bae1 (this PR)

Test differences

Show 26 test diffs

Stage 2

  • [codegen] tests/codegen-llvm/enum/enum-discriminant-eq.rs#LLVM20: ignore (only executed when the pointer width is 64bit) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 20) (J0)
  • [codegen] tests/codegen-llvm/enum/enum-discriminant-eq.rs#LLVM21: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> ignore (only executed when the pointer width is 64bit) (J0)
  • [assembly] tests/assembly-llvm/nvptx-safe-naming.rs#LLVM20: ignore (only executed when the architecture is nvptx64) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 20) (J1)
  • [assembly] tests/assembly-llvm/nvptx-safe-naming.rs#LLVM21: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> ignore (only executed when the architecture is nvptx64) (J1)
  • [assembly] tests/assembly-llvm/riscv-soft-abi-with-float-features.rs#LLVM-PRE-20: ignore (ignored when the LLVM version (20.1.8) is newer than majorversion 19) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 19) (J1)
  • [assembly] tests/assembly-llvm/sanitizer/kcfi/emit-arity-indicator.rs#x86_64: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> pass (J1)
  • [assembly] tests/assembly-llvm/x86_64-bigint-helpers.rs#llvm-pre-20: ignore (ignored when the LLVM version (20.1.8) is newer than majorversion 19) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 19) (J1)
  • [codegen] tests/codegen-llvm/integer-cmp.rs#llvm-pre-20: ignore (ignored when the LLVM version (20.1.8) is newer than majorversion 19) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 19) (J1)
  • [codegen] tests/codegen-llvm/option-niche-eq.rs#LLVM21: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> pass (J1)
  • [codegen] tests/codegen-llvm/sanitizer/kcfi/add-kcfi-arity-flag.rs#x86_64: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> pass (J1)
  • [codegen] tests/codegen-llvm/try_question_mark_nop.rs#NINETEEN: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J1)
  • [assembly] tests/assembly-llvm/x86_64-cmp.rs#LLVM-PRE-20-DEBUG: ignore (ignored when the LLVM version (20.1.8) is newer than majorversion 19) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 19) (J2)
  • [assembly] tests/assembly-llvm/x86_64-cmp.rs#LLVM-PRE-20-OPTIM: ignore (ignored when the LLVM version (20.1.8) is newer than majorversion 19) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 19) (J2)
  • [codegen] tests/codegen-llvm/issues/issue-101082.rs#x86-64-v3: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> pass (J2)
  • [ui] tests/ui/abi/sparcv8plus-llvm19.rs#sparc: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J3)
  • [ui] tests/ui/abi/sparcv8plus-llvm19.rs#sparc_cpu_v9: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J3)
  • [ui] tests/ui/abi/sparcv8plus-llvm19.rs#sparc_cpu_v9_feature_v8plus: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J3)
  • [ui] tests/ui/abi/sparcv8plus-llvm19.rs#sparc_feature_v8plus: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J3)
  • [ui] tests/ui/abi/sparcv8plus-llvm19.rs#sparcv8plus: ignore (ignored when the actual LLVM major version is 20, but the test only targets major version 19) -> ignore (ignored when the actual LLVM major version is 21, but the test only targets major version 19) (J3)
  • [ui] tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs: pass -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 20) (J4)
  • [ui] tests/ui/sanitizer/kcfi-arity-requires-llvm-21-0-0.rs: ignore (ignored on targets without kernel CFI sanitizer) -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 20) (J5)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: pass -> ignore (ignored if LLVM wasn't build with zstd for ELF section compression (we want LLVM/LLD to be built with zstd support)) (J6)
  • [codegen] tests/codegen-llvm/enum/enum-discriminant-eq.rs#LLVM20: pass -> ignore (ignored when the LLVM version (21.1.0) is newer than majorversion 20) (J7)
  • [codegen] tests/codegen-llvm/enum/enum-discriminant-eq.rs#LLVM21: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> pass (J7)
  • [codegen] tests/codegen-llvm/issues/issue-101082.rs#x86-64-v3: ignore (ignored when the LLVM version 20.1.8 is older than 21.0.0) -> ignore (only executed when the architecture is x86_64) (J8)

Additionally, 1 doctest diff were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard dc0bae1db725fbba8524f195f74f680995fd549e --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. aarch64-apple: 4895.5s -> 7314.9s (49.4%)
  2. pr-check-1: 1738.0s -> 2332.5s (34.2%)
  3. x86_64-gnu-tools: 3684.7s -> 4683.9s (27.1%)
  4. x86_64-rust-for-linux: 3030.0s -> 3779.0s (24.7%)
  5. armhf-gnu: 5160.6s -> 6381.6s (23.7%)
  6. x86_64-gnu-miri: 4821.1s -> 5913.9s (22.7%)
  7. test-various: 4946.9s -> 6037.5s (22.0%)
  8. pr-check-2: 2793.8s -> 3358.5s (20.2%)
  9. x86_64-gnu-stable: 7581.0s -> 9070.6s (19.6%)
  10. arm-android: 6157.9s -> 7193.4s (16.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (dc0bae1): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.5% [0.2%, 0.9%] 5
Regressions ❌
(secondary)
1.3% [0.4%, 1.8%] 19
Improvements ✅
(primary)
-1.3% [-23.1%, -0.2%] 216
Improvements ✅
(secondary)
-2.7% [-19.0%, -0.1%] 266
All ❌✅ (primary) -1.3% [-23.1%, 0.9%] 221

Max RSS (memory usage)

Results (primary -3.8%, secondary 1.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.6% [0.4%, 0.8%] 3
Regressions ❌
(secondary)
2.8% [0.7%, 9.2%] 18
Improvements ✅
(primary)
-4.8% [-9.7%, -1.1%] 13
Improvements ✅
(secondary)
-3.1% [-6.4%, -1.1%] 4
All ❌✅ (primary) -3.8% [-9.7%, 0.8%] 16

Cycles

Results (primary -4.6%, secondary -2.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.6% [1.5%, 10.8%] 5
Improvements ✅
(primary)
-4.6% [-9.4%, -1.7%] 9
Improvements ✅
(secondary)
-3.9% [-9.9%, -1.4%] 30
All ❌✅ (primary) -4.6% [-9.4%, -1.7%] 9

Binary size

Results (primary -0.1%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 27
Regressions ❌
(secondary)
0.1% [0.0%, 0.2%] 12
Improvements ✅
(primary)
-0.2% [-0.4%, -0.0%] 27
Improvements ✅
(secondary)
-0.2% [-1.0%, -0.1%] 38
All ❌✅ (primary) -0.1% [-0.4%, 0.1%] 54

Bootstrap: 467.149s -> 463.057s (-0.88%)
Artifact size: 377.42 MiB -> 377.38 MiB (-0.01%)

@klensy
Copy link
Contributor

klensy commented Aug 6, 2025

-- Not building llvm-mt because libxml2 is not available

so now missing "bin/llvm-mt". Or it unused anyway?

@nikic
Copy link
Contributor Author

nikic commented Aug 6, 2025

@klensy See

const LLVM_TOOLS: &[&str] = &[
"llvm-cov", // used to generate coverage report
"llvm-nm", // used to inspect binaries; it shows symbol names, their sizes and visibility
"llvm-objcopy", // used to transform ELFs into binary format which flashing tools consume
"llvm-objdump", // used to disassemble programs
"llvm-profdata", // used to inspect and merge files generated by profiles
"llvm-readobj", // used to get information from ELFs/objects that the other tools don't provide
"llvm-size", // used to prints the size of the linker sections of a program
"llvm-strip", // used to discard symbols from binary files to reduce their size
"llvm-ar", // used for creating and modifying archive files
"llvm-as", // used to convert LLVM assembly to LLVM bitcode
"llvm-dis", // used to disassemble LLVM bitcode
"llvm-link", // Used to link LLVM bitcode
"llc", // used to compile LLVM bytecode
"opt", // used to optimize LLVM bytecode
];
for the list of distributed LLVM tools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.